package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func index(c *gin.Context) {
	c.HTML(http.StatusOK, "login.html", gin.H{"name": "Yuan"})
}

func logikn(c *gin.Context) {
	//  获取get数据
	user := c.Query("user")
	pwd := c.Query("pwd")
	c.DefaultQuery("use", "匿名用户") // 查不到就用指定的默认值（第二个参数）
	// user = c.DefaultQuery("user","")
	fmt.Println("GET user", user)
	fmt.Println("GET pwd", pwd)
	// 获取请求方式
	fmt.Println(c.Request.Method)

	c.HTML(http.StatusOK, "login.html", nil)
}

func auth(c *gin.Context) {

	// 获取post数据
	user := c.PostForm("user")
	pwd := c.PostForm("pwd") // c.PostFormArray
	// user := c.DefaultPostForm("user","")  // 查不到就用指定的默认值（第二个参数）

	fmt.Println("POST user", user)
	fmt.Println("POST pwd", pwd)
	if user == "yuan" && pwd == "123" {
		c.String(200, "验证成功!")
	} else {
		c.String(200, "验证失败!")
	}
}

func not_found(c *gin.Context) {
	c.HTML(http.StatusNotFound, "notFound.html", nil)
}

func article_year_month(c *gin.Context) {
	// 获取动态路径参数
	fmt.Println(c.Param("year"))
	fmt.Println(c.Param("month"))
	// 获取全路径
	// 获取url全路径   url :  协议:IP:端口:路径?get参数
	fmt.Println(c.FullPath())
}

func article_delete(c *gin.Context) {
	// 获取动态路径参数
	delete_id := c.Param("delete_id")
	fmt.Println("删除书籍", delete_id)
	// 重定向
	//c.Header("Content-Type", "text/html; charset=utf-8")
	//c.String(200,"<h3>删除成功!</h3>")
	c.Redirect(http.StatusMovedPermanently, "/index")
}

var r = gin.Default()

func main() {

	r.LoadHTMLGlob("./templates/*")
	r.GET("/index", index)
	r.GET("/login", logikn)
	r.POST("/auth", auth)
	// 设置博客路由组
	blog := r.Group("/blog")
	{
		blog.GET("/articles/:year/:month", article_year_month)
		blog.GET("/articles/delete/:delete_id", article_delete)
	}
	// 没有匹配到路由的请求分配处理函数
	r.NoRoute(not_found)
	r.Run(":9090") // 监听并在 0.0.0.0:8080 上启动服务
}
